]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
windowManager: Use MetaWindowActor.paint_to_content() for window effects
authorRobert Mader <robert.mader@posteo.de>
Sun, 6 Jun 2021 12:29:47 +0000 (14:29 +0200)
committerMarge Bot <marge-bot@gnome.org>
Sat, 4 Sep 2021 10:08:10 +0000 (10:08 +0000)
Previously we used `get_image()`, which returned `cairo_surface`,
in order to create a `ClutterContent` with a screenshot of the
`MetaWindowActor`. This added a roundtrip from GPU to CPU memory.

Instead, use the new `paint_to_content()` API which lets us use a
`CoglTexture` directly as source of our `ClutterContent`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1879>

js/ui/windowManager.js

index c485fd0f996bfcb7591596ec5a12a40d4bc56e42..caaecec410ad436f62b3691b399a6eacff5e4cc7 100644 (file)
@@ -1283,7 +1283,7 @@ var WindowManager = class {
     _prepareAnimationInfo(shellwm, actor, oldFrameRect, _change) {
         // Position a clone of the window on top of the old position,
         // while actor updates are frozen.
-        let actorContent = Shell.util_get_content_for_window_actor(actor, oldFrameRect);
+        let actorContent = actor.paint_to_content(oldFrameRect);
         let actorClone = new St.Widget({ content: actorContent });
         actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
         actorClone.set_position(oldFrameRect.x, oldFrameRect.y);